Method and apparatus for component assembly using continuous selection

ABSTRACT

A manufacturing process for providing an assembly formed of a first piece and a second piece is described. The manufacturing process is carried out by performing at least the following operations: receiving the first piece characterized in accordance with at least a first attribute, selecting the second piece from a buffer, the selecting based in part upon a matching value of a second attribute in relation to the first attribute, replacing the selected second piece with another second piece such that the number of second pieces in the buffer remains about the same, and forming a kit of the first part and the selected second part.

CROSS-REFERENCE TO RELATED APPLICATION

This application claims the benefit of U.S. Provisional Application61/658,851 filed Jun. 6, 2012, which is incorporated herein by referencein its entirety and for all purposes.

FIELD OF THE DESCRIBED EMBODIMENTS

The described embodiments generally relate to manufacturing. Inparticular, assembly of manufactured parts using continuous selection isdescribed.

DESCRIPTION OF THE RELATED ART

In manufacturing products are typically assembled from multiple parts.Those parts are often made of different materials and/or constructedusing different manufacturing steps. Consequently the yield of “good”assembled products is a function of at least two factors, control of themanufacturing steps to ensure functioning and/or in-specificationcomponents, and the specific tolerances of the assembled product.

In most cases, designers strive to ensure that individual components aremanufactured with tight enough tolerances such that when the parts arebrought together and assembled, the final product meets its overallspecifications. For example, the process to cut glass for a window isusually sufficiently controlled so that it is neither too big nor toosmall for a corresponding window frame. Similarly, window frames aremanufactured to a certain size and tolerance to ensure that thecorresponding glass will fit. Accordingly, both the glass and the frameare cut to some nominal size(s) so that when assembled the gap betweenthen is within the required gap specification. Despite variationsbetween pieces during manufacturing, tolerances are sufficientlycontrolled to ensure that the pieces fit together appropriately.

However, when design tolerances approach or exceed the ability of themanufacturing processes to build individual components, the yield ofassembled pieces decreases because the probability of finding twocompatible components at random decreases. Situations like this canarise for cosmetic reasons, such as minimizing the gap between twopieces, or ensuring continuity of color between two different materials.For situations where the assembled design tolerances significantlyexceed the manufacturing capability of components other techniques arerequired in order to maintain the yield of assembled products.

Therefore, accurate and reliable techniques for selecting parts forassembly of a manufactured product is desired.

SUMMARY OF THE DESCRIBED EMBODIMENTS

This paper describes various embodiments that relate to a system, andmethod for continuously selecting a second part for use with a firstpart.

In one embodiment, a manufacturing process is described. Themanufacturing process can be carried out by determining an attributevalue of a first part, the attribute value used to identify a matchingsecond part from a buffer of N second parts, dividing the buffer of Nsecond parts into two of more groups of second parts, using the firstpart attribute to identify a matching second part from within one of thegroups of second parts, when the second part has a second part attributevalue that is within an acceptable range of second part attributevalues, removing the second part from the part buffer and replacing theselected second part with another second part with attributescorresponding to the group from with the second part was selected. Inone embodiment, the two or more groups can be based on predefined subranges of values.

In another embodiment, an inventory control method can include the stepsof receiving an incoming first part, determining a first and a secondvalue of the first part, storing second parts in a buffer including twoor more groups of parts based on sub-ranges of first and secondattribute values and selecting a second part from the buffer when afirst and second values of functions of merit related to first andsecond attributes are less than a predetermined amount, removing theselected matching part from the buffer and providing a kit including thefirst part and the selected second part.

Other aspects and advantages of the invention will become apparent fromthe following detailed description taken in conjunction with theaccompanying drawings which illustrate, by way of example, theprinciples of the described embodiments.

BRIEF DESCRIPTION OF THE DRAWINGS

The invention will be readily understood by the following detaileddescription in conjunction with the accompanying drawings, wherein likereference numerals designate like structural elements, and in which:

FIGS. 1A-1C graphically illustrate assembly process arranged to assembleparts into an assembly that generally relies upon a selected attribute,or attributes, of the parts.

FIGS. 2A and 2B show more detailed relationship of the parts shown inFIGS. 1A-1C.

FIG. 3 shows representative yield curve in accordance with the describedembodiments.

FIGS. 4A-4C illustrate the relationship between mean offset value andthe yield curve shown in FIG. 3.

FIG. 5 is a graph showing multidimensional attribute space that can beused in a merit function.

FIGS. 6A-6B show representative assembly process and apparatus,respectively, in accordance with the described embodiments.

FIG. 7 shows a flowchart detailing assembly process in accordance withthe described embodiments.

FIG. 8 shows a flowchart describing process for determining mean offsetvalues for providing an optimal range of assembly yield to compensatefor manufacturing process drift.

FIGS. 9-12 show representative inventory control protocols used tooptimize assembly yield in accordance with the described embodiments.

FIG. 13 is a block diagram of an electronic device suitable for use withthe described embodiments.

FIGS. 14A-14C are graphs showing probability distribution of attributesof a part.

FIG. 15 shows distributions of a first and a second part together.

FIG. 16 is a graph showing the second part distribution divided intogroups.

FIGS. 17A-17B is a flow chart of method steps 1700 for a continuousselection manufacturing process, in accordance with one embodimentdescribed in the specification.

DETAILED DESCRIPTION OF SELECTED EMBODIMENTS

Reference will now be made in detail to representative embodimentsillustrated in the accompanying drawings. It should be understood thatthe following descriptions are not intended to limit the embodiments toone preferred embodiment. To the contrary, it is intended to coveralternatives, modifications, and equivalents as can be included withinthe spirit and scope of the described embodiments as defined by theappended claims.

The following description relates in general to a manufacturing assemblyoperation and process that can embody concepts that can be employedseparately or in conjunction for assembling components to tolerancesbeyond the ability of their manufacture. A first concept is referred toas “continuous selection” by which it is meant that the best fitting twocomponents can be selected from a continuously updated pool ofcomponents. A second concept can be described in terms of a mechanism ofinventory control that can ensure matching statistical distributions ofthese components to minimize yield loss and ensure that as manycomponents can be matched together as possible. It should be noted thatalthough the embodiments are described (for simplicity) in the contextof two components to be assembled, it is clear that the processesdescribed can be extrapolated to handle the assembly of multiplecomponents simultaneously. Furthermore, the basic principles ofoperation described herein can be implemented as a fully automated, asemi-automated or an entirely manual manufacturing process.

For the manufacture of any physical component, there will generally be astatistical distribution of values for any attribute of interest.Typical attributes of interest can include physical attributes such aslength, height, color, weight. Other attributes can be referred to asrelational attributes between various components. Relational attributescan include relative size, relative weight, and so on. Relationalattributes can be useful can various components are mated in an assemblyoperation. For the most part, the statistical distribution of attributevalues is generally Normal (Gaussian) in nature (or a closeapproximation). In other words, for a group of components, as the numberof components in the group increase, the tendency of a particularattribute is to symmetrically group about values that are close to themean value of the attribute for the group. Therefore, for sake ofsimplicity only, the following discussion presumes that alldistributions described herein are essentially Gaussian in nature andthat for assembly the statistical distribution of component attributesis the same. It should be noted, however, this is not a necessary factorfor the described embodiments and should not be construed as limiting inany manner.

In the described embodiment, the process of continuous selection isbased upon the idea that amongst a randomly selected pool of componentsto be assembled there is a very high probability that there will be aset of components that fit together with the best possible match of anydesired attribute(s). For example, between a bag of screws and a bag offittings, there is a high probability that there is at least one screwthat best fits a given fitting. This can also be extrapolated to theassembly of multiple components. Amongst a given pool of pieces therewill be a combination that fit together best. Clearly the larger thepool(s) of components from which to select from the better the fit ofthe best fitting components will be. Put differently, the morecomponents from which to select, lowers the probability that the bestfitting components will still be a poor fit. In the limit, with aninfinite pool of components there will always be a set of componentsthat are a perfect match. Therefore, a critical variable in thismethodology is the selection of a pool size which given the statisticaldistribution of components and will ensure an acceptable yield ofassembled parts.

In one embodiment, a continuous selection process can be implemented inan assembly operation involving a first part paired with a matching, orbest fit, second part. In one implementation, the first part isidentified and a pre-selected attribute is measured. A second part inthe form of a best fitting component is selected from a pool (or buffer)of candidate components. As a pair formed of the first and second (orset if more than two candidate parts) of best fitting parts areidentified, the best fitting second part is removed from the pool andmatched with the first part. The result of the selection is to reducethe pool size (i.e., the number of components available for selection)which in turn reduces the probability of a subsequent best fit.Consequently, as a matching part is removed from the buffer, a newpart(s) is inserted into the selection pool ensuring a constant poolsize as well as a predicable yield of assemblies.

For example, during an assembly of a portable media device, housing forthe portable media device can be selected. An opening in the housingused to accommodate a cover glass used to protect a display assembly canbe measured. In this situation, a gap value being a difference in sizebetween the opening in the housing and the cover glass can be theattribute of interest. Therefore, in accordance with the process, for aparticular housing, the size of the opening can be used to find bestfitting cover glass by which it is meant that a maximum gap value isless than a pre-defined design specification value. Once the bestfitting cover glass is identified and removed from the buffer of coverglass(s), another cover glass can be inserted into the pool in order tomaintain the size of the pool of cover glass(s) substantially constant.In this way, a probability that a subsequent housing can be matched witha best fit cover glass can be maintained as acceptable.

Variation in manufacturing processes can result in a drift, orvariation, in characteristics of both incoming components and candidatecomponent from which is selected a best match. Therefore, in someembodiments, both the distribution and/or number of candidate componentscan be varied in order to compensate for the shift in manufacturingprocess. In this way, assembly yield can be maintained at an acceptablelevel regardless of any variation in the manufacturing processes used toproduce either the incoming components or candidate components.

In one embodiment, an inventory control protocol can be based upon adetermination of process drift associated with a change in a mean valueof a distribution of an attribute of interest. In another embodiment, adistribution of candidate components can be altered by replacing amatched component with a component pre-sorted in such a way that adistribution of candidate components becomes more like that of theincoming components. In this way, the likelihood of finding a matchingcomponent for an incoming component is commensurably increased. Inanother embodiment, an oldest not-matched part in the buffer can beremoved and replaced. The removed part can be recycled when adistribution of incoming parts indicates that the removed part is likelyto be matched with an incoming part. In another embodiment, the incomingparts can be characterized and if there is no part in the current bufferpopulation that will match the incoming part and be within an outgoingspecification, then the incoming part can also be set aside if and untilthe distribution of candidate parts in the buffer has changed such thatthe removed incoming part can be matched with the finished product beingdeemed acceptable.

These and other embodiments are discussed below with reference to FIGS.1-17C. However, those skilled in the art will readily appreciate thatthe detailed description given herein with respect to these figures isfor explanatory purposes only and should not be construed as limiting.

FIGS. 1A-1C graphically illustrate assembly process 100 arranged toassemble part 102 and part 104 into finished product 106 that generallyrelies upon a selected attribute, or attributes, of part 102 and part104. If, for example, part 102 takes the form of peg 102 having outerdiameter W_(D1) and part 104 takes the form of collar 104 having innerdiameter W_(D2), then assembly process 100 can require that peg 102 beinserted into collar 104 to form finished product 106. In order to modelassembly process 100, it can be presumed that a selected attribute ofany component required in assembly process 100 exhibits a randomvariation that conforms to a normal, or Gaussian, probabilitydistribution. In this way, for example, peg 102 can have a selectedattribute in the form of diameter W_(D1) that exhibits a randomvariation along the lines shown in graph 108 and collar 104 can have aselected attribute in the form of inner diameter W_(D2) that exhibits arandom variation along the lines shown in graph 110 each of which are inthe form of a normal or Gaussian distribution.

As well known in the art, a normal distribution can be characterized bya mean (m) and a standard deviation (S_(D)) that shows how muchvariation or dispersion exists from the mean. In other words, a lowstandard deviation indicates that the data points tend to be very closeto the mean, whereas high standard deviation indicates that the datapoints are spread out over a large range of values. Accordingly, withregards to a manufacturing process, the standard deviation of thedistribution of an attribute for a part can be a measure of a capabilityof the process with regard to that attribute used to manufacture thepart. In other words, a well controlled process can produce a number ofparts having an attribute whose variation about the mean is small (i.e.,a low standard deviation) whereas a process that is less well controlledwill produce parts having an attribute whose variation about the mean isgreater and therefore has a higher standard deviation.

For example, standard device S_(D1) of distribution 108 can indicate anamount of control used to manufacturing peg 102. In other words, if themanufacturing process used to form peg 102 is well controlled, then thedistribution of peg widths (w_(D1)) about mean m₁ will be small asindicated by a low value for standard device S_(D1) and narrower graph108. On the other hand, if the manufacturing process used to form peg102 is less well controlled then the observed values for peg width(w_(D1)) are dispersed more broadly about mean m₁ and standard deviceS_(D1) will have a larger value and graph 108 will be flatter and morespread out.

In order to assure that the majority of parts have a match (i.e., a pegfits into a collar), the standard distributions are made small enough orthe mean values are far enough apart that the number of pegs that aretoo big to fit in the holes is small. Accordingly, the relationshipbetween the distributions of components in any assembly process can havesignificant impact on the overall yield of that assembly process. Forexample, by setting the distributions of the components such that thereis substantial overlap between the distributions (i.e.; S_(D) is >> thanΔm), then the assembly yield can be greater than 99% since the number ofparts that cannot be matched due to attribute incompatibility is verysmall. Although the overall yield may be high, the number of assembledparts that pass an outgoing quality check based on a particular designspecification, such as a gap distance between peg 102 and hole 104, canbe reduced to the point where an effective yield can not meet therequirements of the design specification and the assembled part can berejected. Rejecting already assembled parts is problematic use ofresources due to the time and cost involved in processing that isultimately to no avail.

In the context of this discussion, assembly yield can be defined as theprobability that a first component (such as collar 104) can besuccessfully matched with a best fitting second component (such as peg102) based upon at least one attribute. Yield can depend upon manyfactors such as the number of available components as well as thedistribution of those components with regards to an attribute ofinterest. Therefore, in order to maximize yield as well as compensatefor any manufacturing based drift, it can be a significant advantage inan actual manufacturing environment to be able to control, or at leastmodify, both the number and distribution of candidate components.

As discussed above, one technique that can be used to monitormanufacturing drift is based upon the standard deviation of adistribution of an attribute. In other words, a manufacturing processassociated with a low value for standard deviation can provide a largernumber of parts that do not exhibit a large variance from the mean ofthe distribution. However, any changes in the manufacturing process caninfluence the standard deviation of the distribution of the partsproduced. For example, if the manufacturing process is becoming lesswell controlled with regards to a particular attribute (due to avariation in environmental factors, for example) then a group of partswill show on average an attribute of interest having a greater variationwith respect to the mean value of that attribute that will be evidencedby an increase in the standard deviation. Therefore, a pro-activeinventory control process can be utilized to compensate for any drift inthe manufacturing process that can help to maintain a process yieldwithin an acceptable range by monitoring the nature of the distributionof candidate components (using the standard deviation of the partsproduced as an indicator) and adjusting the nature of thedistribution(s) accordingly.

These concepts can be demonstrated using FIGS. 2A and 2B that show peg102 and collar 104 in more detail especially with the relationshipbetween outer diameter W_(D1) and inner diameter W_(D2). FIG. 2A inparticular shows peg 102 biased to one side of collar 104. In thissituation, assembly yield Y_(a) can be defined in terms of theprobability of finding a best fitting part from a group of N candidateparts for an incoming part. In other words, for an incoming part in theform of collar 104, any candidate part in the form of peg 102 willpositively contribute to assembly yield Y_(a) in accordance with Eq.(2):

W _(D1) <W _(D2)  Eq. (2).

However, in some instances, an attribute of interest can be relational.For example, still referring to FIG. 2A, if the attribute of interest isgap value (GV) of gap 202 can be represented as the difference betweeninner diameter W_(D2) (of collar 104) and outer diameter W_(D1) (of peg102) according to Eq. (3):

GV=W _(D2) −W _(D1)  Eq. (3).

As shown in FIG. 2B, for cosmetic or other reasons, it may be desirableto constrain gap value GV to a narrow range of possible gap values. Inthis way, gap value GV can be evaluated for acceptability by comparinggap value GV with a range of acceptable gap values that can besubstantially smaller than the potential range of best fit matchesbetween collar 104 and peg 102. This range of acceptable values(represented by “∂”) can correspond to an outgoing specification alongthe lines of a design specification. In this way, only those candidatecomponents that can satisfy the design specification in accordance withEq. (4) can be considered acceptable and can positively contributetowards an effective assembly yield Y_(eff) :

GV=W _(D2) −W _(D1)<∂  Eq. (4).

It should be noted that since assembly yield Y_(a) is generally lessthan (or at best equal to) effective yield Y_(eff,) any assembled part(such as finished product 106) that does not meet the designspecification can be considered an outgoing reject and must either bere-worked or rejected entirely. In this way, a substantial amount ofprocessing resources that have been allocated is essentially wasted.Therefore, maintaining assembly yield Y_(a) and effective yield Y_(eff)as close as possible is an important consideration in any manufacturingprocess.

For reasons stated above, assembly yield Y_(a) can be dependent upondrift in the processes used to manufacture either peg 102 or collar 104.For example, FIG. 3 shows representative yield curve 300 associated witha specific attribute (such as gap value GV) in accordance with thedescribed embodiments. It should be noted that the characteristics ofyield curve 300 can depend upon a relationship between the distributionof both incoming parts and a group of N candidate parts. Assembly yieldYa can be a function of mean value offset Am in accordance with Eq. (5):

Y _(a) =Y _(a) (Δm)  Eq. (5).

As illustrated in FIGS. 4A-4C, (presuming all distributions describedare essentially normal), distributions 402 and 404 can be related toassembly yield Y_(a) using a mean value “offset” that can be embodied asa difference in mean values of each distribution in accordance with Eq.(6):

Δm=m ₄₀₂ −m ₄₀₄  Eq. (6).

Referring back to FIG. 3, from the results of FIGS. 4A-4C, it is evidentthat there is a range of mean value offsets that can be associated withwhat can be considered an acceptable assembly yield Y_(accept). Forexample, offset value Δm₁ corresponding assembly yield Y₃₀₂ can be lessthan assembly yield Y₃₀₄ associated with offset value Δm₂ which, inturn, is greater than assembly yield Y₃₀₆ associated with offset valueΔm₃. Therefore, a range of offset values (shown as Δm_(a) to Δm_(b)) canbe used to modify distributions 402 and 404 in order that assembly yieldYa remains within the acceptable range of assembly yield associated withacceptable assembly yield Y_(accept). It should be noted that it ispreferable for most assembly operations for operating point OP₁ belocated on a portion 308 of yield curve 300 having a shallow slope ascompared to portion 310 thereby mitigating to some extent variations inmanufacturing processes. Various inventory control protocols along thelines discussed below can be used to maintain a corresponding assemblyprocess in acceptable regime.

The following discussion provides a more detailed description of theselection process during an assembly operation in which an attribute, orattributes, of a part is determined and a search for a correspondingpart that most closely matches the measured attribute(s) is performed.More generally, the search can be based upon what is referred to as amerit function M. Merit function M can be related to various parametersin accordance with Eq. (7):

M=M (ω_(i) , A _(i))  Eq. (7);

-   -   where: ω is a weighting factor; and A_(i) is selection        attribute.

The selection attribute can be any parameter used as a selectioncriterion of choosing a best matching part. For example, selectionattributes can be size (diameter of peg 102 for example), color,texture, gap distance, and so on. There can be any number of selectionattributes used to choose a best match for a particular process. Itshould be noted, however, that as the number of attributes increases, sodoes the number of parts required in a part buffer and also the amountof selection resources (both time and computation) required. Moreover,in some embodiments, weighting factor ω_(i) can be used to providerelative weights between various attributes. For example, if for aparticular assembly process, an attribute associated with color issubstantially more important than texture, then a weighting factor forthe color attribute can be greater than that for the texture attribute.Therefore, the judicious choice of selection attributes can be animportant factor in an efficient implementation of the selection andassembly process.

As described above, merit function M can be multi-dimensional havingvarious attributes such as color, size, rotation that form components inwhat can be referred to as a multi-dimensional attribute space S_(A)graphically illustrated in FIG. 5 as attribute space 500 showing ageneralized point 502. In this implementation, point 502 can represent apoint in attribute space 500 having generalized attribute coordinates{ω_(i), A_(i)} that can be associated with merit function M{ω_(i),A_(i)} as in Eq. (7) where i is the number of attributes. Also shown arethe projections of merit function M onto corresponding attribute axesa₁, a₂, and a₃.

Therefore in an automated manufacturing process, by using merit functionM to select best fitting part, component parts can be manufactured withslack manufacturing tolerances but can sustain high effective yieldswithout the need to sort or pre-sort. Moreover, an additional degree ofquality control can be achieved by determining if the incoming part willhave any match and if not, it can be discarded immediately therebypreserving valuable manufacturing resources. In this way, by applyingmerit function M it can be assured that incoming parts can be matchedwith a best fit counterpart that meets all design specs even though themanufacturing specs used to create the parts are looser than the targetdesign spec. Accordingly, the number of parts required to populate abuffer can be a function of the number of attributes as well as theratio of the design tolerance to the manufacturing capability. Forexample, a tight tolerance coupled with a loose manufacturing capabilitywill require a greater number of parts to meet a corresponding designtolerance. Also, as the number of attributes increases, the number ofparts required can also increase.

FIG. 6A graphically illustrates representative manufacturing operation600 in accordance with the principals discussed above. Operation 600 canbe used to manufacture any number of products using any number ofcomponents using any number of attributes. However, for the sake ofclarity, operation 600 will be described in terms of basic manufacturingoperation that describes a single incoming part being matched with asingle component based upon a single attribute. In this example,incoming part 602 can be evaluated by determining apparatus 604 forattribute A₁. Attribute A₁ can be any suitable attribute related to ameasurable property of incoming part 602. Attribute A₁ can be a size ofincoming part 602 (or size of a particular aspect of incoming part 602),the color of incoming part 602, and so on.

In some situations, the measured attribute can be relational in that ameasured property of incoming part 602 can be used in relation (i.e.,compared to) to a measured property of a candidate part. One suchrelational attribute can be a measure of a degree of parallelism betweenportions of incoming part 602 and a selected best fit part. The degreeof parallelism can be used as a selection criterion for choosing thebest fitting part. Referring again to peg 102 and collar 104, anattribute that can be ascribed to peg 102 is circular conformity. Inother words, how close does peg 102 (or collar 104) conform to ageometric circle? By comparing radii of curvature at selected pointsbetween peg 102 and collar 104, a measure of parallelism can be definedthat provides an indication of just how well peg 102 fits into collar104. In other words, the degree of conformity can also provide anindication of the uniformity of gap 202 between peg 102 and collar 104in finished product 106.

Referring back to FIG. 6A, incoming part 602 can be scanned bydetermining apparatus 604. Determining apparatus 604 can be sensitive toa chosen attribute. For example, if the chosen attribute is viewableusing an image capture device, then determining apparatus 604 can takethe form of a camera. On the other hand, if the chosen attribute istemperature based, then determining device 604 can take the form of athermal sensor such as an IR sensor, thermometer, etc. For the remainderof this discussion and without loss of generality, determining apparatus604 is presumed to take the form of a visible light camera 604. In thisway, camera 604 can optically scan incoming part 602. In one embodiment,camera 604 can utilize processing resources (either on-board orexternal) to convert images captured by camera 604 into a set ofmeasured values (MV) that will be referred to hereinafter as to as datacloud 606. Data cloud 606 can represent a virtual rendering of incomingpart 602 as the set of measured values (MV) can be used to digitally“reconstruct” incoming part 602. For convenience as well ascomputational efficiency, data cloud 606 can be stored locally at camera604 or in an external data base (not shown) for later use. In any case,data cloud 606 can be digitally processed using available computationalresources. In one embodiment, processing of data cloud 606 can involvecomparing data cloud 606 (or a representative sample of the measuredvalues MV) to a reference datum (such as a CAD data) used to define thegeometric structure of incoming part 602 and more particularly, thataspect related to selected attribute A1. In one embodiment, thereference datum can correspond to a mean value of a statisticallysignificant number of incoming parts. In this way, the comparison canprovide a measure of the dispersion about the mean m of incoming parts602 and provide an indication of the nature of the distribution ofincoming parts with respect to the attribute of interest.

In one embodiment, a representative sample of data cloud 606 in the formof measured values MV can be compared to a set of threshold measuredvalues. In one embodiment, the set of threshold values can correspond tothose measured values of selected attribute A1 for which a best fittingpart is not available. For example, when incoming part 602 is scanned bycamera 604, a representative sample of the measured values MV can beforwarded to comparator 608 that can compare the measured valuesreceived to threshold values. If comparator 608 determines that apre-determined number of measured values are outside of an acceptablerange and fall into what is shown as Region I, then incoming part 602can be removed from assembly process 600. In this way, valuable time andcomputational resources will not be wasted on incoming parts that cannotbe matched with a corresponding best fitting part. Moreover, thisconcept can be extended to using an outgoing quality specification inthat those incoming parts that are determined to not be able to meet anoutgoing quality check when matched with an available best fitting part,the incoming part can be removed from assembly process 600. Thisdetermination can be based upon the scanned characteristics of incomingpart 602 and a data base of known characteristics of parts available forpotentially matching incoming part 602. If there is no availablematching part, then incoming part 602 can be set aside for a subsequentattempt at matching. However, in this situation, the incoming partsremoved from assembly process 600 can be set aside if and until matchingparts can be found that when used will meet the outgoing qualitycriteria.

In those situations where incoming part 602 has been determined to beacceptable in that there is at least one matching part in buffer 610 ofN parts, then selector 612 identifies and selects part 614 having anattribute A1 that satisfies merit function M that is then matched withincoming part 602 to form assembled part 616. It should be noted that bybest fit it is meant that of N parts in buffer 610, selector 612 willselect part 614 having characteristics that most closely match thosecalled out in merit function M but not necessarily a “perfect” match,therefore the notation M() to indicate that the matching characteristicsare not necessarily an exact match but are nonetheless the “best” matchof the N parts available in buffer 610. It should be noted that prior toinclusion in buffer 610, each of the N parts included therein werescanned and characterized and the corresponding data stored and madeavailable to selector 612. Once part 614 has been identified,replacement part 618 replaces best fitting part 614 previously removedfrom buffer 610. In this way, the number of parts in buffer 610 remainssubstantially unchanged thereby maintaining an incoming yield at anacceptable level.

It should be noted that after a period of time that depends in part uponthe number of parts in buffer 610, once a substantial number of the bestfitting parts are removed from buffer 610, the remaining parts will tendto be associated with portions of the distribution havingcharacteristics that are less likely to satisfy the merit function of anincoming part. In other words, the distribution of parts within thebuffer becomes distorted with respect to the distribution of incomingparts and the probability of finding a part in the buffer that is a bestfit to an incoming part becomes less. Therefore, in order to assureconsistent and acceptable yields, an inventory control protocol can usebuffer rebalancing to improve the number of best matching parts inbuffer 610 thereby increasing the monitored yield. The monitored yieldcan indicate a probability that an incoming part can be matchedsuccessfully with a part in buffer 610. By successful it is meant thatthe attribute of the best matching second part is within an acceptablerange of attribute values (akin to a design spec).

The rebalancing of buffer 610 can take many forms. For example, in oneembodiment, replacement parts can be “pre-binned” prior to being placedinto buffer 610. By pre-binned it is meant that the distribution ofbuffer 610 can be modified by selecting replacement parts (parts thatreplace those selected) that are selected prior to inclusion in buffer610 to have an attribute value in accordance with the attribute value ofthe part selected. In this way, the mean of the distribution of theparts in buffer 610 can be made closer to that of the parts most likelyto be selected. This rebalancing of buffer 610 can improve yield bypreferentially pre-selecting those replacement parts more likely to beselected than would replacement parts selected in a less directed, ormore random manner.

In another embodiment, the distribution of parts in buffer 610 can beselectively modified by removing one or more parts from buffer 610 thathave remained in buffer 610 a period of time greater than apre-determined amount of time. In other words, those parts in buffer 610that have not been selected are more likely than not representative of apart having an attribute value that falls out of the range of attributevalues consistent with a best matching part. In this way, by removingthose “oldest” parts from buffer 610 to be replaced with parts having anattribute value closer to one that would merit a match can have theeffect of increasing overall yield. In other words, removing those partsin buffer 610 that have less desirable attributes can result in anincrease in yield. It should be noted, however, that the parts removedcan be sequestered for a later time when, perhaps, the attribute valuedistribution of incoming parts has shifted in such a way that rendersthe sequestered parts “more desirable”.

It should be noted, however, that the “age” of a part in buffer 610 canrepresent but one of many attributes that can be used to mark thoseparts in buffer 610 that possess attribute value(s) that render themundesirable with respect to the attribute values of the incoming parts.For example, some of the attributes that can be used to identify lessdesirable parts in buffer 610 can include a part size, a degree ofmis-match with the incoming parts (i.e., the parts in buffer 610 thatare the “worst matched”), and so on.

FIG. 6B graphically illustrates a manufacturing assembly operation 650in accordance with the described embodiments. Operation 650 can becarried out using well known assembly equipment such as pick and placemachines, robotic handlers, optical sensors such as cameras, and so on.Accordingly, first part 652 can be transported by transport mechanism654. Transport mechanism 654 can take many forms. For example, transportmechanism 654 can take the form of a conveyer belt configured to carryfirst part 652 from a loading area (not shown) to the operation area inwhich assembly operation 650 can be carried out. Continuous selectionapparatus 656 can include a number of operational modules and can takemany forms. For example, continuous selection apparatus 656 can bedistributed in nature by which it is meant that particular operationalmodules can be located where most efficiently used and be incommunication with each other. In other embodiments, continuousselection apparatus 656 can be essentially a single unit having multiplecomponents included therein (as shown in FIG. 6B). In some cases,continuous selection apparatus 656 can be any appropriate combinationthereof.

As shown in FIG. 6B, continuous selection apparatus 656 can includedetermining apparatus 658 configured to determine a particularattribute, or attributes, of first part 652. The attribute can be anytangible aspect of first part 652 such as size, weight, color, smell,etc. It should be noted that determining apparatus 658 can be sensitiveto one or more attributes and as such can provide a multi-dimensionaldata stream to computational unit 660 configured to store and processdata. In this way computational unit 660 can provide a virtual renderingof first part 652 (along the lines of data cloud 606. Computational unit660 can be in communication with comparator 662 that can be used todetermine if the attributes of first part 652 are deemed to beacceptable in that the attribute(s) is within a range of acceptableattributes.

Comparator 662 can determine (with the assistance of computational unit660, if need be) that first part 652 is acceptable, by which it is meantthat the attribute(s) of part 652 is within a range of acceptableattribute values. Once deemed acceptable, instructions can be sent toselector unit 664 configured to identify and select a best matching part666 from buffer 668. Selector unit 664 can take many forms such as apick and place machine. Selector unit 664 can then transport selectedpart 666 to transporter 654 (or equivalent) for assembly with first part652 to form finished part 668.

FIG. 7 shows a flowchart detailing process 700 in accordance with thedescribed embodiments. Process 700 can be carried out by receiving anincoming part at 702. At 704, an attribute, or attributes, used toselect a best matching part from a buffer of N parts can be associatedwith the incoming part. At 706, the incoming part can be scanned todetermine an attribute value, or values, of the incoming part. At 708,the attribute value, or values, can be compared to database to determineif there is any part in the buffer that can be matched with the incomingpart and meet acceptable criteria. For example, if the assembled part issubject to an outgoing quality check based upon, for example, a designspecification, is there any part in the buffer that can be matched withthe incoming part that will meet the design specification. If, at 708,it is determined that there is no part in the buffer that can bematched, then at 710, a determination is made if the incoming part is tobe sent for subsequent processing. By subsequent processing, it is meantthat although that there is no matching part currently in the bufferthat will present an acceptable match for the incoming part, then thepart can be held until such time that re-balancing the buffer willprovide a matching part, then the incoming part is sent to recycle at712, otherwise, the incoming part is rejected at 714.

Returning 708, if the incoming part is determined to be acceptable, thenat 716, a determination is made if there is a best fitting part in thebuffer. If there is a best fitting part in the buffer, then the bestfitting part is selected at 718 and a replacement part is added to thebuffer at 720. Returning back to 716, if it is determined that there isnot currently a best fitting part in the buffer, then the incoming partis recycled at 712.

FIG. 8 shows a flowchart describing process 800 for determining meanoffset values for providing an optimal range of assembly yield tocompensate for manufacturing process drift. Process 800 can begin at 802by selecting an attribute of interest. At 804, a desired value of theselected attribute is chosen At 806, mean offset values corresponding toan acceptable range of assembly yields is determined and at 808,distributions of incoming component and components in a buffer forstoring candidate matching components are modified in accordance withthe mean value offsets.

FIGS. 9-11 show representative inventory control protocols used tooptimize assembly yield in accordance with the described embodiments.FIG. 9 shows a flowchart detailing process 900 for monitoring assemblyyield. Process 900 begins at 902 by monitoring yield. In the describedembodiment, monitored yield can be defined as a probability of anincoming first part having an associated best matching second part in abuffer having attributes within an acceptable range of attribute values(akin to a design spec). In this way, even if the first part has a bestmatch in the buffer, the combination would not meet outgoingrequirements, therefore, the first part is deemed to not have aneffective best match. When at 904 it is determined that the yield is notacceptable, then the buffer of parts used to provide a best fit for anincoming part is re-balanced in accordance with any processes describedby flowcharts shown in FIGS. 10-11.

In one embodiment, buffer rebalancing can include identifying the partsin the buffer that have remained unmatched for the longest period oftime and removing those so identified. Accordingly, FIG. 10 shows aflowchart detailing process 1000 for determining an oldest non-matchingcomponent in the buffer begins at 1002 by evaluating an amount of timethat each part in the buffer has remained unmatched. At 1004, the oldestnon-matching part in the buffer is identified and removed. The removedoldest part is then replaced at 1006. In one embodiment, the removedpart is subsequently recycled whereas in another embodiment, the removedpart is sequestered until and if parts are received having attributesthat render the sequestered part more “desirable”.

FIG. 11 shows a flowchart detailing process 1100 that modifies thedistribution of parts in the buffer in an attempt to more closely alignthe distribution of parts in the buffer with the incoming parts. At1102, sub-distributions (i.e., binning) of components in the buffer thatmore closely matches the distribution of incoming parts are identified.At 1104, the buffer is preferentially populated with componentscorresponding to the identified sub-distributions.

In one embodiment, buffer rebalancing can include identifying the partsin the buffer that are the “worst” matching in that those part havingattribute values that differ the most from the attribute values of theincoming parts are removed from the buffer. Accordingly, FIG. 12 shows aflowchart detailing process 1200 for determining a worst matching partin the buffer that begins at 1202 determining an attribute differencevalue between the attribute value of the incoming part and all (or atleast most) of the parts in the buffer. At 1204, the part associatedwith the largest difference value is identified. At 1206, the identifiedpart is removed from the buffer and at 1208, and replaced with anotherpart. In one embodiment, the replacement part can be pre-binned so as tomodify a mean value of the distribution of parts in the buffer to moreclosely align with the mean value of the incoming parts.

FIG. 13 is a block diagram of a computer device 1350 suitable for usewith the described embodiments. The computer device 1350 illustratescircuitry of a representative computing device. The electronic device1350 includes a processor 1352 that pertains to a microprocessor orcontroller for controlling the overall operation of the electronicdevice 1350. The electronic device 1350 stores media data pertaining tomedia items in a file system 1354 and a cache 1356. The file system 1354is, typically, a storage disk or a plurality of disks. The file system1354 typically provides high capacity storage capability for theelectronic device 1350. However, since the access time to the filesystem 1354 is relatively slow, the electronic device 1350 can alsoinclude a cache 1356. The cache 1356 is, for example, Random-AccessMemory (RAM) provided by semiconductor memory. The relative access timeto the cache 1356 is substantially shorter than for the file system1354. However, the cache 1356 does not have the large storage capacityof the file system 1354. Further, the file system 1354, when active,consumes more power than does the cache 1356. The electronic device 1350can also include a RAM 1370 and a Read-Only Memory (ROM) 1372. The ROM1372 can store programs, utilities or processes to be executed in anon-volatile manner. The RAM 1370 provides volatile data storage, suchas for the cache 1356.

The electronic device 1350 also includes a network/bus interface 1361that couples to a data link 1362. The data link 1362 allows theelectronic device 1350 to couple to a host computer or to peripheraldevices such as a robot. The data link 1362 can be provided over a wiredconnection or a wireless connection. In the case of a wirelessconnection, the network/bus interface 1361 can include a wirelesstransceiver.

In some embodiments, the parts within the buffer can be characterizedand arranged into groups. For example, groups can be formed by definingsub-ranges of acceptable values that were used above to determine partacceptance as described above.

A first part can have an attribute that, in turn, can have an acceptablerange of values. This attribute can correspond to a like attribute on asecond part such as the peg and hole example of FIG. 1A-1C. In practice,however, parts are rarely simple enough to have only one importantattribute that may need to be within a proper range for proper fitmentor operation. Often, parts can have two or more attributes that shouldbe in acceptable ranges for a good fit or device operation. As a parthas increasing complexity, the fitment of a second part into a firstpart can become more difficult. Sometimes, when applying continuousselection, the buffer of N parts can become skewed with parts (i.e.,second parts) that may not be suitable for selection for a first part.One approach to managing the distribution of parts within the bufferdivides the buffer into groups. These buffer groups can allow a moreprecise management of the part buffer. In one embodiment, the groups canbe defined by non-overlapping sub-ranges of attribute values.

This may be best explained with an example. Consider a first part withan opening designed to receive a second part. The opening on the firstpart can have two attributes, such as a width and a height.

FIG. 14A-14C are graphs showing probability distributions of attributesof a part. FIG. 14A in particular shows the probability distribution ofa first attribute of a first part. For example, the first attribute canbe a width of an opening on the first part. The graph shows aprobability curve 1402 that further shows a mean at 56.69 units.Furthermore, the tails of the probability curve 1402 fall off on eachside of the mean such that the smallest probable width is 56.63 unitsand the largest probable width can be 56.75 units.

A second attribute of the first part can be height. FIG. 14B shows aprobability distribution of a second attribute, such as a height of anopening on the first part. Curve 1404 shows a mean height of 10.66units. The curve 1404 shows the smallest probable height to be 10.60units and the largest height to be 10.72 units.

The possible values that the first and the second attributes can attaincan be combined into a single graph. FIG. 14C plots possible firstattribute values on the X-axis and possible second attribute values onthe Y-axis. The curve 1406 represents a probable distribution of firstand second attribute values for the first part. Returning to ourexample, the curve 1406 can represent possible values for the height andthe width of an opening on a first part.

In many cases, there can be a second part that can be configured tointeract with the second part. For example, the second part can beconfigured to fit into the opening of the first part. Naturally, thesecond part can have similar and related first and second attributes.Returning to our example, the second part can also have a height and awidth, so that the second part can fit into the corresponding opening ofthe first part. Often, a designer can design the second part to besmaller, and therefore have a clearance gap, than the opening in thefirst part so that the second part can more easily fit into the firstpart. As was developed for the first part in FIGS. 14A and 14B, a curvecan be derived to plot possible attribute values for the second part.

FIG. 15 shows distributions 1500 of first and second parts together.Curve 1406 which is a probable distribution of first and second partattributes for the first part. FIG. 15 can also include curve 1502showing a probable distribution of first and second attributes of asecond part. Those skilled in the art will recognize that, althoughillustrated in terms of width and height, the attributes andcorresponding attribute values can be any possible attribute of anypart, such as diameter, surface roughness, color match, planarity and soforth. FIG. 15 also shows that the second part (in this example) can bemanufactured with less variance than the first part as expressed by asmaller diameter circle of curve 1502 compared to curve 1406. In otherembodiments, the first part can be manufactured with less variance thatthe second part. The relationship of curve 1502 to curve 1406 (curve1502 is lower than curve 1406, and positioned to the left) further showsthat the second part (again, in this example) can be made smaller thanfirst part. In some embodiments, when the second part is designed to fitwithin an opening of the first part, a smaller sized second part withrespect to the first part attributes can be desirable to provide aclearance gap to ease assembly.

FIG. 16 is a graph 1600 showing the second part distribution dividedinto groups. The second part distribution can be divided into two ormore groups. In one embodiment, the groups can be separated inaccordance with non-overlapping sub-ranges of first and second attributevalues of the second part. Although the second part is divided intogroups in this example, in other embodiments the first part may bedivided into groups. In some embodiments, a part having the leastvariance (with respect to other parts) may be selected to be dividedinto groups.

In one embodiment, groups may be determined by dividing attribute valuesinto substantially even ranges. As shown in FIG. 16, the first attributevalue can range from 56.60 units to 56.72 units. This range can bedivided into two such that two relatively uniform sized sub-ranges ofthe first attribute can be formed of 0.06 units each. Similarly for thesecond attribute value, the range from 10.57 to 10.69 units can bedivided into two relatively uniformly sized sub-ranges of 0.06 unitseach. Thus, in this example, a first group 1602 can have a firstattribute range from 56.60 to 56.66 and a second attribute range from10.63 to 10.69. Second group 1604, third group 1606 and fourth group1608 can be similarly formed as illustrated in FIG. 16.

In other embodiments, the resulting groups need not be similarly sized.For example, group sub-ranges can be based upon two or moremanufacturing means (averages) of a first attribute value. In anotherembodiment, the sub-ranges can be determined in accordance with singlemean values associated with manufacturing yields. In yet otherembodiments, the sub-ranges of adjacent groups may overlap. In oneembodiment, as the buffer of N parts (second parts) is initially filled,each second part can be examined and assigned to be a member of one ofthe defined groups. Continuing the example began in FIG. 14A-14C, assecond parts are included in the buffer of N parts, each second part canbe assigned to one of the four groups 1602-1608. This furthercharacterization of second parts can allow a further buffer managementfor a continuous selection method. This buffer management can beillustrated in FIGS. 17A-17B below.

FIGS. 17A-17B is a flow chart of method steps 1700 for a continuousselection manufacturing process, in accordance with one embodimentdescribed in the specification. Those skilled in the art will recognizethat any system configured to perform the method steps in any order iswithin the scope of this description. The method can begin in step 1702when first and second attribute acceptable values are determined Forexample, a first attribute can be height and a second attribute can bewidth. In determining acceptable attribute values, a first part can havea first range of acceptable attribute values, while a second part canhave a second a different range of acceptable attribute values.Referring back to FIG. 15, an acceptable range of first attribute valuescan be from 56.63 units to 56.75 for the first part, while an acceptablerange of first attribute values for the second part can be from 56.60units to 56.72.

In step 1704, the second parts can be divided into groups. In oneembodiment, the groups can be determined by non-overlapping sub-rangesof acceptable values of a part attribute. For example, the second partcan be divided into four groups as shown in FIG. 16. In step 1706, abuffer of N second parts can be formed by noting the group of the secondpart as the part is placed into the buffer.

In step 1708, the first part can be received. In step 1710, the firstand second attribute values for the first part can be determined In step1712, the first and second attribute values of the first part areexamined to determine if the part is acceptable. For example, the firstpart can be scanned (step 1710) and scanned first and second attributevalues compared against acceptable attribute values (step 1712) todetermine if the part is acceptable. If the part is not acceptable, thenin step 1714, the part is examined to determine if the first part is arecycle candidate. A recycle candidate part can be a part that canpossibly have acceptable part attribute values, but the buffer may notcurrently have a second part that may be acceptable. If the first partis not a recycle candidate, then in step 1716, the part is rejected andthe method ends. In one embodiment, the rejected parts determined instep 1716 can be considered not matched parts. These can be first partsthat can be manufactured out of specification and therefore may not haveany acceptable second parts.

If, on the other hand in step 1714, the part is a recycle candidate,then in step 1720 the first part is recycled and the method ends. In oneembodiment, the first part can be placed back into an inventory of otherfirst parts and the continuous selection process can be applied later byreselecting this part from inventor and applying the described processagain, when the make-up of the buffer of N second parts has changed.

Returning to step 1712, if the first part is acceptable, then in step1718, the buffer of N second parts is searched for an acceptable secondpart. In one embodiment, an acceptable part can be one in which anacceptable predetermined difference exists between the respectiveattribute values on the first and second parts. In another embodiment,an acceptable part can have attribute values that can provide anacceptable function of merit for first and second attribute values. Forexample, a function of merit can be a difference between like attributevalues on the first and the second part. In another embodiment, anacceptable value for a function of merit can be a function of merit thatis less than a predefined value. For example, in one embodiment, anacceptable function of merit can be a gap value between the first andthe second part that is less than a predetermined amount.

If there is no acceptable part in the part second part buffer, then themethod can proceed to step 1720. On the other hand, if there is anacceptable part in the buffer, then in step 1722, the second part can beselected from the part buffer. In one embodiment, the group associatedwith the selected part can be noted so that in step 1724, the partbuffer can be replenished with another second part, selected inaccordance with the noted group. By replenishing the buffer with secondparts having the same group as the selected part, the make-up of theparts buffer can be controlled. In one embodiment, replacing selectedparts is similar selected parts can prevent the parts buffer frombecoming skewed with, for example, too many similar second parts. Instep 1726, a kit can be formed including the first part and selectedsecond part and the method ends.

In one embodiment, the sub-ranges that are used to define groups asdescribed in FIG. 16 can be changed to help manage the buffer of secondparts. For example, one or more sub-ranges can be narrowed or widened todecrease or increase respectively the frequency that a part from aparticular group is selected. In this manner, the make-up of the buffercan be rebalanced in concert with incoming first parts having particularattributes.

In other embodiments, both the first and second parts populations can bedivided into groups instead of only the second part as described above.Such an embodiment may increase selection complexity; however, improvedbuffer management may be realized, when compared to only one partpopulation divided into groups.

The various aspects, embodiments, implementations or features of thedescribed embodiments can be used separately or in any combination.Various aspects of the described embodiments can be implemented bysoftware, hardware or a combination of hardware and software. Thedescribed embodiments can also be embodied as computer readable code ona non-transitory computer readable medium. The computer readable mediumis defined as any data storage device that can store data which canthereafter be read by a computer system. Examples of the computerreadable medium include read-only memory, random-access memory, CD-ROMs,DVDs, magnetic tape, and optical data storage devices. The computerreadable medium can also be distributed over network-coupled computersystems so that the computer readable code is stored and executed in adistributed fashion.

The foregoing description, for purposes of explanation, used specificnomenclature to provide a thorough understanding of the describedembodiments. However, it will be apparent to one skilled in the art thatthe specific details are not required in order to practice the describedembodiments. Thus, the foregoing descriptions of the specificembodiments described herein are presented for purposes of illustrationand description. They are not target to be exhaustive or to limit theembodiments to the precise forms disclosed. It will be apparent to oneof ordinary skill in the art that many modifications and variations arepossible in view of the above teachings.

The advantages of the embodiments described are numerous. Differentaspects, embodiments or implementations can yield one or more of thefollowing advantages. Many features and advantages of the presentembodiments are apparent from the written description and, thus, it isintended by the appended claims to cover all such features andadvantages of the invention. Further, since numerous modifications andchanges will readily occur to those skilled in the art, the embodimentsshould not be limited to the exact construction and operation asillustrated and described. Hence, all suitable modifications andequivalents can be resorted to as falling within the scope of theinvention.

What is claimed is:
 1. A manufacturing process, comprising: determininga first part attribute value, the attribute value used to identify amatching second part from a buffer of N second parts; dividing thebuffer of N second parts into two or more groups of second parts inaccordance with predefined sub-ranges of second part attribute values;using the first part attribute value to identify the matching secondpart from within one of the two or more groups of second parts when thematching second part includes a second part attribute value is within anacceptable range of second part attribute values; removing theidentified matching second part from the buffer; and maintaining thebuffer of N second parts by replacing the matching second part with areplacement second part having attribute values in accordance withsub-range corresponding to the group from which the selected second partwas selected therefrom.
 2. The manufacturing process of claim 1, whereinthe acceptable range of second part attribute values is based on afunction of merit, wherein the function of merit is a difference betweenmeasurements of one at least one point on the first attribute of thefirst part and a corresponding point of the first attribute of thesecond part.
 3. The manufacturing process of claim 1, furthercomprising: monitoring a yield of the manufacturing process bydetermining a ratio of a number of first parts and a number of notmatched first parts.
 4. The manufacturing process of claim 3, furthercomprising: rebalancing the buffer of N second parts by changingpredefined sub-ranges of second part attribute values.
 5. Themanufacturing process of claim 1, wherein the sub-ranges are determinedin accordance with mean values associated with manufacturing yields ofthe second part.
 6. The manufacturing process of claim 1, wherein thesub-ranges are determined by dividing the range of attribute values intotwo or more substantially even amounts.
 7. The manufacturing process ofclaim 1, wherein the first part is rejected when first attribute valueis greater than a predetermined amount.
 8. The manufacturing process ofclaim 1, further comprising: determining a second attribute value of thefirst part, the second attribute value and the first attribute valueused to identify the matching second part from a buffer of N secondparts; wherein the buffer of N second parts is further divided into twoor more groups of second parts in accordance with predefined sub-rangesof first and second attribute values, and wherein the second attributevalue is used with the first attribute value to identify the matchingsecond part from within one of the two or more groups of second partswhen the matching second value is within an acceptable range of firstand second attribute values.
 9. The manufacturing process of claim 8,further comprising: rejecting the first part when attribute values ofthe first and second attributes exceeds a predetermined amount.
 10. Aninventory control method performed in a continuous selectionmanufacturing process, comprising: receiving an incoming first part;determining a first and a second attribute value of the first part;storing second parts in two or more groups based on sub-ranges of firstand second attribute values, wherein the two or more groups comprise abuffer of N second parts; selecting a matching second part from thebuffer of N second parts when a value of a function of merit associatedwith the first attribute value and a value of a function of meritassociated with the second attribute value are within an acceptableamounts; removing the selected matching second part from the buffer; andproviding a kit including the first part and the selected second part.11. The inventory control method as recited in claim 10, furthercomprising: rejecting the first part when no matching second part isselected.
 12. The inventory control method as recited in claim 11,further comprising: monitoring a yield of the continuous selectionmanufacturing process by determining a ratio of a number of incomingfirst parts and a number of not matched first parts.
 13. The inventorycontrol method as recited in claim 12, further comprising: modifying thesub-ranges of the groups when the yield is less than a predeterminedamount.
 14. The inventory control method as recited in claim 12, furthercomprising: modifying the sub-ranges of the groups in accordance withchanging nominal first and second attributes of the first part.
 15. Theinventory control method as recited in claim 10, further comprising:recycling the first part when no matching second part is selected. 16.The inventory control method as recited in claim 12, further comprising: selecting a replacement second part in accordance with the sub-rangescorresponding to the group from which the second part was selectedtherefrom.
 17. The manufacturing process as recited in claim 16,rebalancing the distribution of the N second parts in the buffer whenthe monitored yield is less than a pre-determined value. 18.Non-transitory computer readable medium executable by a processor in acomputer assisted manufacturing process, comprising: computer code forproviding an incoming first part; computer code for determining a firstpart attribute value, the attribute value used to identify a matchingsecond part from a buffer of N second parts; computer code for using thefirst part attribute value to identify the matching second part fromwithin one of the two or more groups of second parts when the matchingsecond part attribute value is within an acceptable range of second partattribute values; computer code for removing the identified matchingsecond part from the buffer; and, computer code for maintaining thebuffer of N second parts by replacing the removed matching second partwith a replacement second part having attribute values in accordancewith sub-range corresponding to the group from which the part wasselected therefrom.
 19. The computer readable medium as recited in claim18, further comprising: computer code for monitoring a yield of themanufacturing process by determining a ratio of a number of first partsand a number of not matched first parts.
 20. The computer readablemedium as recited in claim 19, further comprising: computer code forrebalancing the buffer of N second parts by changing predefinedsub-ranges of second part attribute values.
 21. The computer readablemedium as recited in claim 18, further comprising: computer code forrejecting the first part when attribute values of the first andattribute exceeds a predetermined amount.